package com.weichen.studentgameexchange.member.entity.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.ToString;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 功能：
 * 作者：惟尘
 * 日期：2025/1/26 10:38
 */
@Data
@ToString
@TableName("user")
@Schema(name = "User对象", description = "查询用户平台信息实体")
public class UserPlatformVo implements Serializable {

    private static final long serialVersionUID = 1L;


    /**
     * 主键
     */
    @Schema(defaultValue = "主键")
    @TableId(value = "user_id", type = IdType.AUTO)
    private Long userId;

    /**
     * 姓名
     */
    @TableField("name")
    @Schema(defaultValue = "姓名")
    private String name;

    /**
     * 昵称
     */
    @Schema(defaultValue = "昵称")
    @TableField("username")
    private String username;

    /**
     * 头像
     */
    @TableField("avatar")
    @Schema(defaultValue = "头像")
    private String avatar;


    /**
     * 注册时间，记录用户注册的时间
     */
    @TableField("register_time")
    @Schema(defaultValue = "注册时间，记录用户注册的时间")
    private LocalDateTime registerTime;

    /**
     * 最后登录时间，记录用户最后一次登录的时间
     */
    @TableField("last_login_time")
    @Schema(defaultValue = "最后登录时间，记录用户最后一次登录的时间")
    private LocalDateTime lastLoginTime;

    /**
     * 角色名称，如“系统管理员”、“审核员”、“普通用户”等
     */
    @TableField("role_name")
    @Schema(defaultValue = "角色名称，如“系统管理员”、“审核员”、“普通用户”等")
    private String roleName;

    /**
     * 角色描述，对角色的简短描述
     */
    @TableField("role_description")
    @Schema(defaultValue = "角色描述，对角色的简短描述")
    private String roleDescription;

    @TableField(exist = false)
    private String token;

}